package com.kgc.ssm.mapper;

import com.kgc.ssm.bean.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created On : 2022/8/23 0023.
 * <p>
 * Author : shiguangchuan
 * <p>
 * Description: UserMapper
 */
public interface UserMapper {

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [loginCode, loginPwd]
     * @return : com.kgc.smbms.bean.User
     * @description : 根据登录账号，密码查询用户详情
     */
    User selectUserByCodeAndPwd(@Param("loginCode") String loginCode, @Param("loginPwd") String loginPwd);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [queryName, queryRole]
     * @return : java.util.List<com.kgc.smbms.bean.User>
     * @description : 根据条件（用户名和角色），查询用户列表
     */
    List<User> selectUserListByCondition(@Param("queryName") String queryName, @Param("queryRole") Integer queryRole);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [userId]
     * @return : com.kgc.smbms.bean.User
     * @description : 根据用户编号，查询用户详情
     */
    User selectUserById(@Param("userId") Integer userId);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [user]
     * @return : int
     * @description : 根据用户编号，修改用户详情
     */
    int updateUserById(@Param("user") User user);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [userId]
     * @return : int
     * @description : 根据用户编号，删除用户详情
     */
    int deleteUserById(@Param("userId") Integer userId);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/12
     * @param  : [userForm]
     * @return : int
     * @description : 插入用户详情
     */
    int insertUser(@Param("userForm") User userForm);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/15
     * @param  : [queryName, queryRole]
     * @return : int
     * @description : 查询用户总数
     */
    int selectUserCount(@Param("queryName") String queryName, @Param("queryRole") Integer queryRole);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/15
     * @param  : [queryName, queryRole, pageNo, pageSize]
     * @return : java.util.List<com.kgc.smbms.bean.User>
     * @description : 根据条件（用户名和角色），查询用户列表，带分页
     */
    List<User> selectUserListPageByCondition(@Param("queryName") String queryName, @Param("queryRole") Integer queryRole, @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);

    /**
     * @author : shiguangchuan
     * @date   : 2022/8/15
     * @param  : [userId, userPwd]
     * @return : int
     * @description : 根据用户编号，用户密码
     */
    int updateUserPwdById(@Param("userId") Integer userId, @Param("userPwd") String userPwd);

}
